--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit d1145cd1c2dcceae682377d506727e1aba5ed159
Parents : e6762ec
Author : Ivan <ivan@quad4.io>
Signature : Signature validation error
Date : 2026-05-09T19:01:30-05:00
fix(l10n): add missing flood protection translation keys to all locales
Changes
7 files changed, 68 insertions(+), 26 deletions(-)
Diff
diff --git a/meshchatx/src/frontend/locales/de.json b/meshchatx/src/frontend/locales/de.json
index 272c565c..1fbc8b25 100644
--- a/meshchatx/src/frontend/locales/de.json
+++ b/meshchatx/src/frontend/locales/de.json
@@ -357,7 +357,13 @@
"telemetry_trust_revoke": "Telemetrie-Vertrauen entziehen",
"telemetry_trust_grant": "Für Telemetrie vertrauen",
"location_manage_desc": "Verwalten Sie, wie Ihr Standort geteilt wird.",
- "restart_rns": "RNS neu starten"
+ "restart_rns": "RNS neu starten",
+ "flood_protection": "Flood Protection",
+ "flood_protection_description": "Automatically raise the inbound stamp cost when receiving too many messages per minute from many sources. This makes coordinated spam attacks computationally expensive while keeping normal conversations affordable.",
+ "flood_protection_enabled": "Enable auto-adjusting stamp cost",
+ "flood_threshold": "Messages per minute threshold",
+ "flood_max_stamp_cost": "Maximum stamp cost during flood",
+ "flood_cooldown": "Cooldown before lowering cost (seconds)"
},
"common": {
"open": "Öffnen",
@@ -921,17 +927,17 @@
"backbone_transport_identity_hint": "Entspricht Reticulum-Backbone-Fernbeispielen nur mit remote und target_port. Hash verwenden, wenn Betreiber oder Verzeichnis ihn angeben.",
"loopback_local_title": "Lokal / Loopback",
"loopback_local_body": "Reticulum nutzt intern eine geteilte Instanz. Um einen anderen RNS-Prozess auf diesem Host zu erreichen, verwenden Sie einen TCP-Client auf 127.0.0.1 mit dem Instanz-Port oder ein externes Interface-Modul.",
- "loopback_local_docs_hint": "Siehe Kapitel Interfaces f\u00fcr unterst\u00fctzte Typen.",
- "loopback_local_docs_link": "Geb\u00fcndeltes Reticulum-Handbuch \u00f6ffnen",
- "custom_external_intro": "Typen wie WeaveInterface oder eigene Klassen werden geladen, wenn Reticulum eine passende Moduldatei (TypeName.py) unter interfacepath mit interface_class findet (externer Loader in RNS). JSON-Optionen werden in den Interface-Abschnitt Ihrer Konfiguration \u00fcbernommen.",
+ "loopback_local_docs_hint": "Siehe Kapitel Interfaces für unterstützte Typen.",
+ "loopback_local_docs_link": "Gebündeltes Reticulum-Handbuch öffnen",
+ "custom_external_intro": "Typen wie WeaveInterface oder eigene Klassen werden geladen, wenn Reticulum eine passende Moduldatei (TypeName.py) unter interfacepath mit interface_class findet (externer Loader in RNS). JSON-Optionen werden in den Interface-Abschnitt Ihrer Konfiguration übernommen.",
"custom_external_type_label": "Interface-Typname",
"custom_external_type_placeholder": "WeaveInterface",
- "custom_external_json_label": "Zus\u00e4tzliche Optionen (JSON-Objekt)",
+ "custom_external_json_label": "Zusätzliche Optionen (JSON-Objekt)",
"custom_external_json_placeholder": "\"listen_ip\": \"0.0.0.0\", \"listen_port\": 4242",
- "custom_external_docs_hint": "Siehe Interfaces-Handbuch f\u00fcr native Typen und externe Module.",
- "custom_external_docs_link": "Geb\u00fcndeltes Reticulum-Handbuch \u00f6ffnen",
+ "custom_external_docs_hint": "Siehe Interfaces-Handbuch für native Typen und externe Module.",
+ "custom_external_docs_link": "Gebündeltes Reticulum-Handbuch öffnen",
"custom_external_type_required": "Reticulum-Interface-Typnamen eingeben.",
- "custom_external_json_invalid": "Ung\u00fcltiges JSON f\u00fcr Zusatzoptionen.",
+ "custom_external_json_invalid": "Ungültiges JSON für Zusatzoptionen.",
"failed_save_discovery": "Speichern der Erkennungseinstellungen fehlgeschlagen",
"no_interfaces_found_config": "Keine Schnittstellen in der ausgewählten Konfigurationsdatei gefunden",
"failed_parse_config": "Parsen der Konfigurationsdatei fehlgeschlagen",
@@ -2702,4 +2708,4 @@
"banishment_lifted": "Banishment lifted successfully",
"failed_lift_banishment": "Failed to lift banishment"
}
-}
+}
\ No newline at end of file
diff --git a/meshchatx/src/frontend/locales/es.json b/meshchatx/src/frontend/locales/es.json
index a65b8632..215689f2 100644
--- a/meshchatx/src/frontend/locales/es.json
+++ b/meshchatx/src/frontend/locales/es.json
@@ -357,7 +357,13 @@
"telemetry_trust_revoke": "Revoke Telemetry Trust",
"telemetry_trust_grant": "Trust for Telemetry",
"location_manage_desc": "Administrar cómo se comparte su ubicación.",
- "restart_rns": "Reiniciar RNS"
+ "restart_rns": "Reiniciar RNS",
+ "flood_protection": "Flood Protection",
+ "flood_protection_description": "Automatically raise the inbound stamp cost when receiving too many messages per minute from many sources. This makes coordinated spam attacks computationally expensive while keeping normal conversations affordable.",
+ "flood_protection_enabled": "Enable auto-adjusting stamp cost",
+ "flood_threshold": "Messages per minute threshold",
+ "flood_max_stamp_cost": "Maximum stamp cost during flood",
+ "flood_cooldown": "Cooldown before lowering cost (seconds)"
},
"common": {
"open": "Abierto",
@@ -869,17 +875,17 @@
"backbone_transport_identity_hint": "Como los ejemplos remotos backbone de Reticulum solo con remote y target_port. Use el hash si el operador o el directorio lo indican.",
"loopback_local_title": "Local / loopback",
"loopback_local_body": "Reticulum utiliza una instancia compartida internamente. Para comunicarse con otro proceso RNS en este host, use un cliente TCP a 127.0.0.1 con el puerto de la instancia, o use un módulo de interfaz externo.",
- "loopback_local_docs_hint": "Vea el cap\u00edtulo Interfaces para tipos admitidos.",
+ "loopback_local_docs_hint": "Vea el capítulo Interfaces para tipos admitidos.",
"loopback_local_docs_link": "Abrir manual Reticulum incluido",
- "custom_external_intro": "Tipos como WeaveInterface se cargan si Reticulum encuentra un archivo de m\u00f3dulo coincidente (TypeName.py) en interfacepath con interface_class (cargador externo RNS). Las opciones JSON se fusionan en la secci\u00f3n de interfaz de su archivo de configuraci\u00f3n.",
+ "custom_external_intro": "Tipos como WeaveInterface se cargan si Reticulum encuentra un archivo de módulo coincidente (TypeName.py) en interfacepath con interface_class (cargador externo RNS). Las opciones JSON se fusionan en la sección de interfaz de su archivo de configuración.",
"custom_external_type_label": "Nombre del tipo de interfaz",
"custom_external_type_placeholder": "WeaveInterface",
"custom_external_json_label": "Opciones adicionales (objeto JSON)",
"custom_external_json_placeholder": "\"listen_ip\": \"0.0.0.0\", \"listen_port\": 4242",
- "custom_external_docs_hint": "Vea el manual Interfaces sobre tipos nativos y m\u00f3dulos externos.",
+ "custom_external_docs_hint": "Vea el manual Interfaces sobre tipos nativos y módulos externos.",
"custom_external_docs_link": "Abrir manual Reticulum incluido",
"custom_external_type_required": "Introduzca el nombre del tipo de interfaz Reticulum.",
- "custom_external_json_invalid": "JSON no v\u00e1lido para opciones adicionales.",
+ "custom_external_json_invalid": "JSON no válido para opciones adicionales.",
"failed_save_discovery": "Failed to save discovery settings",
"no_interfaces_found_config": "No se encontraron interfaces en el archivo de configuración seleccionado",
"failed_parse_config": "Failed to parse configuración file",
@@ -2702,4 +2708,4 @@
"action_changelog": "Cambio",
"action_changelog_desc": "Cambios recientes"
}
-}
+}
\ No newline at end of file
diff --git a/meshchatx/src/frontend/locales/fr.json b/meshchatx/src/frontend/locales/fr.json
index 17b3a3c7..abd34c70 100644
--- a/meshchatx/src/frontend/locales/fr.json
+++ b/meshchatx/src/frontend/locales/fr.json
@@ -153,7 +153,7 @@
"local_message_auto_delete_unit_days": "jours",
"local_message_auto_delete_unit_months": "mois (30 jours chacun)",
"local_message_auto_delete_month_note": "Un mois compte comme 30 jours. Désactivé par défaut.",
- "browse_nodes": "Parcourir les n\u0153uds",
+ "browse_nodes": "Parcourir les nœuds",
"propagation_nodes_description": "Gardez les conversations qui circulent même lorsque les pairs sont hors ligne.",
"nodes_info_1": "Les nœuds de propagation maintiennent les messages en toute sécurité jusqu'à ce que les destinataires se synchronisent à nouveau.",
"nodes_info_2": "Des nœuds s'unissent pour distribuer des charges utiles chiffrées.",
@@ -357,7 +357,13 @@
"telemetry_trust_revoke": "Revoquer la confiance en télémétrie",
"telemetry_trust_grant": "Confiance pour la télémétrie",
"location_manage_desc": "Gérez comment votre emplacement est partagé.",
- "restart_rns": "Redémarrer RNS"
+ "restart_rns": "Redémarrer RNS",
+ "flood_protection": "Flood Protection",
+ "flood_protection_description": "Automatically raise the inbound stamp cost when receiving too many messages per minute from many sources. This makes coordinated spam attacks computationally expensive while keeping normal conversations affordable.",
+ "flood_protection_enabled": "Enable auto-adjusting stamp cost",
+ "flood_threshold": "Messages per minute threshold",
+ "flood_max_stamp_cost": "Maximum stamp cost during flood",
+ "flood_cooldown": "Cooldown before lowering cost (seconds)"
},
"common": {
"open": "Ouvrir",
@@ -2702,4 +2708,4 @@
"action_changelog": "Changer de journal",
"action_changelog_desc": "Changements récents"
}
-}
+}
\ No newline at end of file
diff --git a/meshchatx/src/frontend/locales/it.json b/meshchatx/src/frontend/locales/it.json
index 29ed0b45..7e3d752f 100644
--- a/meshchatx/src/frontend/locales/it.json
+++ b/meshchatx/src/frontend/locales/it.json
@@ -357,7 +357,13 @@
"telemetry_trust_revoke": "Revoca Fiducia Telemetrica",
"telemetry_trust_grant": "Fidati per la Telemetria",
"location_manage_desc": "Gestisci come viene condivisa la tua posizione.",
- "restart_rns": "Riavvia RNS"
+ "restart_rns": "Riavvia RNS",
+ "flood_protection": "Flood Protection",
+ "flood_protection_description": "Automatically raise the inbound stamp cost when receiving too many messages per minute from many sources. This makes coordinated spam attacks computationally expensive while keeping normal conversations affordable.",
+ "flood_protection_enabled": "Enable auto-adjusting stamp cost",
+ "flood_threshold": "Messages per minute threshold",
+ "flood_max_stamp_cost": "Maximum stamp cost during flood",
+ "flood_cooldown": "Cooldown before lowering cost (seconds)"
},
"common": {
"open": "Apri",
@@ -2702,4 +2708,4 @@
"action_changelog": "Changelog",
"action_changelog_desc": "Modifiche recenti"
}
-}
+}
\ No newline at end of file
diff --git a/meshchatx/src/frontend/locales/nl.json b/meshchatx/src/frontend/locales/nl.json
index 74958322..4afc52c7 100644
--- a/meshchatx/src/frontend/locales/nl.json
+++ b/meshchatx/src/frontend/locales/nl.json
@@ -357,7 +357,13 @@
"telemetry_trust_revoke": "Revoce Telemetrie Trust",
"telemetry_trust_grant": "Vertrouwen voor telemetrie",
"location_manage_desc": "Beheer hoe uw locatie wordt gedeeld.",
- "restart_rns": "RNS herstarten"
+ "restart_rns": "RNS herstarten",
+ "flood_protection": "Flood Protection",
+ "flood_protection_description": "Automatically raise the inbound stamp cost when receiving too many messages per minute from many sources. This makes coordinated spam attacks computationally expensive while keeping normal conversations affordable.",
+ "flood_protection_enabled": "Enable auto-adjusting stamp cost",
+ "flood_threshold": "Messages per minute threshold",
+ "flood_max_stamp_cost": "Maximum stamp cost during flood",
+ "flood_cooldown": "Cooldown before lowering cost (seconds)"
},
"common": {
"open": "Open",
@@ -2702,4 +2708,4 @@
"action_changelog": "Changelog",
"action_changelog_desc": "Recente wijzigingen"
}
-}
+}
\ No newline at end of file
diff --git a/meshchatx/src/frontend/locales/ru.json b/meshchatx/src/frontend/locales/ru.json
index 7895b311..edcda63b 100644
--- a/meshchatx/src/frontend/locales/ru.json
+++ b/meshchatx/src/frontend/locales/ru.json
@@ -357,7 +357,13 @@
"telemetry_trust_revoke": "Отозвать доверие телеметрии",
"telemetry_trust_grant": "Доверять телеметрии",
"location_manage_desc": "Управление тем, как передается ваше местоположение.",
- "restart_rns": "Перезапуск RNS"
+ "restart_rns": "Перезапуск RNS",
+ "flood_protection": "Flood Protection",
+ "flood_protection_description": "Automatically raise the inbound stamp cost when receiving too many messages per minute from many sources. This makes coordinated spam attacks computationally expensive while keeping normal conversations affordable.",
+ "flood_protection_enabled": "Enable auto-adjusting stamp cost",
+ "flood_threshold": "Messages per minute threshold",
+ "flood_max_stamp_cost": "Maximum stamp cost during flood",
+ "flood_cooldown": "Cooldown before lowering cost (seconds)"
},
"common": {
"open": "Открыть",
@@ -2702,4 +2708,4 @@
"banishment_lifted": "Banishment lifted successfully",
"failed_lift_banishment": "Failed to lift banishment"
}
-}
+}
\ No newline at end of file
diff --git a/meshchatx/src/frontend/locales/zh.json b/meshchatx/src/frontend/locales/zh.json
index 5fbe0462..203c9faa 100644
--- a/meshchatx/src/frontend/locales/zh.json
+++ b/meshchatx/src/frontend/locales/zh.json
@@ -357,7 +357,13 @@
"telemetry_trust_revoke": "撤销遥测信任",
"telemetry_trust_grant": "授予遥测信任",
"location_manage_desc": "管理您的位置共享方式。",
- "restart_rns": "重启 RNS"
+ "restart_rns": "重启 RNS",
+ "flood_protection": "Flood Protection",
+ "flood_protection_description": "Automatically raise the inbound stamp cost when receiving too many messages per minute from many sources. This makes coordinated spam attacks computationally expensive while keeping normal conversations affordable.",
+ "flood_protection_enabled": "Enable auto-adjusting stamp cost",
+ "flood_threshold": "Messages per minute threshold",
+ "flood_max_stamp_cost": "Maximum stamp cost during flood",
+ "flood_cooldown": "Cooldown before lowering cost (seconds)"
},
"common": {
"open": "打开",
@@ -2702,4 +2708,4 @@
"action_changelog": "更新日志",
"action_changelog_desc": "最近的更改"
}
-}
+}
\ No newline at end of file
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────